[Alteryx][小ネタ]好きな地図を表示できる?閲覧ツールのマップレイヤを変えてみた
はじめに
こんにちは。DI部の大高です。
昨日、非公式な方法ではありますが「閲覧ツール」のマップレイヤーを変更できる方法があるという話を知ったので早速色々と試してみました!夢が広がります。
前提条件
Alteryx Designerは「Alteryx 非管理者 Designer / Version 2019.1.6.58192」で検証しています。
元ネタ
元ネタはAlteryxコミュニティーでの下記のディスカッションです。
Base MAP Change - Alteryx Community
これによると、既存のファイルをちょこっといじってあげるだけで地図が変更できそうです。また、内部では地図表示にオープンソースのMapServerを利用していることが分かりますね。
やってみた
早速やってみました!なお、非公式な方法なので、試す場合にはファイルのバックアップ作成などは入念に行ってください。
mapファイルを探す
フォーラムによると、*.mapファイルを書き換えるだけで良いとのことなのでファイルを探します。
管理者インストールか、非管理者インストールで場所が変わりますが、それぞれ以下のフォルダにmapファイルがあります。
C:\Program Files\Alteryx\bin\RuntimeData\MapServer
C:\Users\[ユーザー名]\AppData\Local\Alteryx\bin\RuntimeData\MapServer
このフォルダの中に「CartoLight.map」や「CartoDark.map」があると思います。今回は「CartoLight.map」を変更してみたいので、バックアップとして元ファイルをコピーしてファイル名を「CartoLight.map.bak」としてバックアップを作成しておきます。
mapファイルを書き換える
では早速書き換えます。「CartoLight.map」を開くと、中身はMapServerのmapファイル形式であることが分かります。
レイヤの定義は123行目ぐらいから以下のように記載されています。
LAYER NAME "TileIndex_CloudMade" TYPE POLYGON STATUS off DATA "MaxZoom=18;(略)/MapTile?Request=GetTile&TileMatrixSet=_Base_CartoLightProxy&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}" CONNECTIONTYPE PLUGIN PLUGIN "AlteryxSpatialPluginsEngine.dll" END
この記載から、地図データは地図タイルサービスからタイル画像を呼び出しているだけのようです。また、パラメータとしてそれぞれ{TileMatrix}
にズームレベル、{TileRow}
にy、{TileCol}
にx、が与えられるようですね。
これを踏まえてOpenStreetMapのタイルサービスのアドレスに書き換えてみます。
LAYER NAME "TileIndex_CloudMade" TYPE POLYGON STATUS off DATA "MaxZoom=18;tile.openstreetmap.jp/{TileMatrix}/{TileCol}/{TileRow}.png" CONNECTIONTYPE PLUGIN PLUGIN "AlteryxSpatialPluginsEngine.dll" END
いざ表示!
出ました!
(c) OpenStreetMap contributors
ちゃんとポリビルドツールで作成したポリゴン(中央ぐらいの赤いポリゴンです)も、それっぽい場所に出ています。なお、日本のタイルサーバーを利用しているためか、ズームを引きすぎるとエラーが発生するようです。
やり方が分かったので、他のタイルサービスも試してみました。いま巷で話題のMapbox を利用して色々なスタイルを試してみます。
こちらも問題なく表示されました!
まとめ
以上、「閲覧ツール」のマップレイヤー変更でした。
実際に利用する際には、もちろん対象の地図タイル提供サーバの利用規約に従う必要がありますので、十分に注意して利用する必要があります。その点、Mapboxなどの有償サービスなどをうまく利用すれば良い感じに利用できそうだと感じました。
地図って楽しいですね!それでは!
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。